home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Shareware / WorkTime 4.14 / worktime.exe / {app} / db / db_update.ini next >
INI File  |  2008-01-20  |  5KB  |  184 lines

  1. [002]
  2. CREATE TABLE SECURITY (
  3.     ID INTEGER NOT NULL,
  4.     USER_ID INTEGER,
  5.     DATA_VALUE TLONGNAME);
  6.  
  7. alter table SECURITY
  8. add constraint PK_SECURITY
  9. primary key (ID);
  10.  
  11. CREATE GENERATOR GEN_SECURITY_ID;
  12. SET TERM ^ ;
  13.  
  14. CREATE TRIGGER SECURITY_BI FOR SECURITY
  15. ACTIVE BEFORE INSERT POSITION 0
  16. AS
  17. BEGIN
  18.   IF (NEW.ID IS NULL) THEN
  19.     NEW.ID = GEN_ID(GEN_SECURITY_ID,1);
  20. END
  21. ^
  22.  
  23. SET TERM ; ^
  24. EXECUTE PROCEDURE UPDATE_CONFIG('db_ver', '002');
  25.  
  26.  
  27. [003]
  28. delete from config where name='admin';
  29. INSERT INTO SECURITY (ID) VALUES (-10);
  30. INSERT INTO SECURITY (ID) VALUES (-1);
  31.  
  32. EXECUTE PROCEDURE UPDATE_CONFIG('db_ver', '003');
  33.  
  34.  
  35. [004]
  36. SET TERM ^ ;
  37.  
  38. CREATE PROCEDURE CONVERTINTTOTIMESTR (
  39.     SECONDS INTEGER)
  40. RETURNS (
  41.     FULLTIMESTR CHAR(15))
  42. AS
  43. DECLARE VARIABLE IHOUR INTEGER;
  44. DECLARE VARIABLE IMIN INTEGER;
  45. DECLARE VARIABLE SHOUR CHAR(9);
  46. DECLARE VARIABLE SMIN CHAR(2);
  47. DECLARE VARIABLE SSEC CHAR(2);
  48. begin
  49.   iHour = Seconds/60/60;
  50.   Seconds = Seconds - (Seconds/60/60)*60*60;
  51.   iMin = Seconds/60;
  52.   Seconds = Seconds - (Seconds/60)*60;
  53.  
  54.   sMin = cast(iMin as char(2));
  55.   if (iMin<10) then sMin = '0' || sMin;
  56.  
  57.   sSec = cast(Seconds as char(2));
  58.   if (Seconds<10) then sSec = '0' || sSec;
  59.  
  60.   if (iHour<10) then FullTimeStr = '0'||cast(iHour as char(1)) || ':' || sMin || ':' || sSec;
  61.   else if (iHour<100) then FullTimeStr = cast(iHour as char(2)) || ':' || sMin || ':' || sSec;
  62.   else if (iHour<1000) then FullTimeStr = cast(iHour as char(3)) || ':' || sMin || ':' || sSec;
  63.   else if (iHour<10000) then FullTimeStr = cast(iHour as char(4)) || ':' || sMin || ':' || sSec;
  64.   else if (iHour<100000) then FullTimeStr = cast(iHour as char(5)) || ':' || sMin || ':' || sSec;
  65.   else FullTimeStr = cast(iHour as char(9)) || ':' || sMin || ':' || sSec;
  66.  
  67.   suspend;
  68. end
  69. ^
  70. SET TERM ; ^
  71.  
  72. EXECUTE PROCEDURE UPDATE_CONFIG('db_ver', '004');
  73.  
  74.  
  75. [005]
  76. DROP TRIGGER DETAIL_DAY_AI_UPDATE_QSTAT;
  77. DROP TRIGGER SESSION_AI_UPDATE_QSTAT;
  78.  
  79. DROP INDEX IDX_PROJECT_TOTAL_WORKTIME_DESC;
  80. DROP INDEX IDX_ACTIVITY_TOTAL_WORKTIME_DES;
  81. DROP INDEX IDX_USER_TOTAL_WORKTIME_DESC;
  82. DROP INDEX IDX_WORKSTATION_TOTAL_WORKTIMED;
  83. DROP INDEX IDX_APP_TOTAL_WORKTIME_DESC;
  84. DROP INDEX IDX_DOC_TOTAL_WORKTIME_DESC;
  85.  
  86. ALTER TABLE PROJECT DROP TOTAL_WORKTIME;
  87. ALTER TABLE PROJECT DROP LAST_USED;
  88.  
  89. ALTER TABLE ACTIVITY DROP TOTAL_WORKTIME;
  90. ALTER TABLE ACTIVITY DROP LAST_USED;
  91.  
  92. ALTER TABLE USERR DROP TOTAL_WORKTIME;
  93. ALTER TABLE USERR DROP LAST_USED;
  94.  
  95. ALTER TABLE WORKSTATION DROP TOTAL_WORKTIME;
  96. ALTER TABLE WORKSTATION DROP LAST_USED;
  97.  
  98. ALTER TABLE APP DROP TOTAL_WORKTIME;
  99. ALTER TABLE APP DROP LAST_USED;
  100.  
  101. ALTER TABLE DOC DROP TOTAL_WORKTIME;
  102. ALTER TABLE DOC DROP LAST_USED;
  103.  
  104. EXECUTE PROCEDURE UPDATE_CONFIG('db_ver', '005');
  105.  
  106.  
  107. [006]
  108. ALTER TABLE SESSION ADD GROUP_SESSION_ID INTEGER;
  109.  
  110. CREATE GENERATOR GEN_NOTE_ID;
  111.  
  112. CREATE TABLE NOTE (
  113.     ID                INTEGER NOT NULL,
  114.     GROUP_SESSION_ID  INTEGER,
  115.     NOTE_TEXT         VARCHAR(10000)
  116. );
  117. ALTER TABLE NOTE ADD CONSTRAINT PK_NOTE PRIMARY KEY (ID);
  118. CREATE INDEX IDX_NOTE_GROUP_SESSION_ID ON NOTE (GROUP_SESSION_ID);
  119.  
  120. SET TERM ^ ;
  121. CREATE TRIGGER NOTE_BI FOR NOTE
  122. ACTIVE BEFORE INSERT POSITION 0
  123. AS
  124. BEGIN
  125.   IF (NEW.ID IS NULL) THEN
  126.     NEW.ID = GEN_ID(GEN_NOTE_ID,1);
  127. END
  128. ^
  129. SET TERM ; ^
  130.  
  131. EXECUTE PROCEDURE UPDATE_CONFIG('db_ver', '006');
  132.  
  133. [007]
  134.  
  135. update session set GROUP_SESSION_ID=id where GROUP_SESSION_ID is null;
  136.  
  137. SET TERM ^ ;
  138. ALTER PROCEDURE UPDATE_SESSION (
  139.     MODE_ID INTEGER,
  140.     PROJECT_ID INTEGER,
  141.     ACTIVITY_ID INTEGER,
  142.     USER_ID INTEGER,
  143.     WORKSTATION_ID INTEGER,
  144.     DATEE DATE,
  145.     BEGIN_TIME TIMESTAMP,
  146.     END_TIME TIMESTAMP,
  147.     WORKTIME INTEGER,
  148.     ROLLBACK_INDICATOR INTEGER)
  149. RETURNS (
  150.     ID INTEGER)
  151. AS
  152. DECLARE VARIABLE DB_END_TIME TIMESTAMP;
  153. DECLARE VARIABLE iGroupSessionID INTEGER;
  154. begin
  155.   for select s.id, s.end_time from session s
  156.    where s.datee=:datee and s.mode_id = :mode_id and s.project_id = :project_id and s.activity_id = :activity_id
  157.      and s.user_id = :user_id and s.workstation_id = :workstation_id and s.begin_time = :begin_time
  158.    into :id, :DB_END_TIME do
  159.    begin
  160.     if ((:Rollback_Indicator<>1) and (:end_time < DB_END_TIME))
  161.      then id = -1;
  162.      else update session set end_time=:end_time, worktime=:worktime where id=:id;
  163.     exit;
  164.    end
  165.  
  166.   if (id is NULL) then
  167.   begin
  168.    id = GEN_ID(GEN_SESSION_ID,1);
  169.  
  170.    select min(s.GROUP_SESSION_ID) from session s where
  171.     s.datee=:datee and s.mode_id < 5 and s.project_id = :project_id and s.activity_id = :activity_id and
  172.     s.user_id = :user_id and s.workstation_id = :workstation_id and s.end_time = :begin_time
  173.    into :iGroupSessionID;
  174.    if (iGroupSessionID is NULL) then iGroupSessionID = id;
  175.  
  176.    INSERT INTO SESSION (ID,MODE_ID,PROJECT_ID,ACTIVITY_ID,USER_ID,WORKSTATION_ID,DATEE,BEGIN_TIME,END_TIME,WORKTIME,GROUP_SESSION_ID)
  177.    VALUES (:ID,:MODE_ID,:PROJECT_ID,:ACTIVITY_ID,:USER_ID,:WORKSTATION_ID,:DATEE,:BEGIN_TIME,:END_TIME,:WORKTIME, :iGroupSessionID);
  178.  
  179.   end
  180. end
  181. ^
  182. SET TERM ; ^
  183.  
  184. EXECUTE PROCEDURE UPDATE_CONFIG('db_ver', '007');